package com.aoip.telemetry.telemetry.configureui.business.analysis.group.service;

import com.aoip.telemetry.telemetry.entity.element.ElementAnalysisGroupConfigEntity;
import com.aoip.telemetry.telemetry.entity.element.ElementConfigEntity;

import java.util.List;

/**
 * 元素解析组模块接口层
 *
 * @author chenbai
 * @version 1.0
 * @date 2021/12/29 15:27
 */
public interface ElementAnalysisGroupService {


    /**
     * 获取元素解析组配置分页列表
     *
     * @param entity 单个元素解析组
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.element.ElementAnalysisGroupConfigEntity>
     * @author chenbai
     * @date 2021/12/31
     **/
    List<ElementAnalysisGroupConfigEntity> list(ElementAnalysisGroupConfigEntity entity);


    /**
     * 根据元素解析组id，获取该组中所有元素，与解析组名称和编码信息
     *
     * @param analysisGroupId 元素解析组id
     * @author chenbai
     * @date 2021/12/29
     **/
    List<ElementConfigEntity> elementAnalysisList(String analysisGroupId);

    /**
     * 新增或编辑元素解析组中的元素
     *
     * @param analysisIds         元素数据id集合
     * @param analysisGroupEntity 解析组实体
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.element.ElementConfigEntity>
     * @author chenbai
     * @date 2021/12/27
     **/
    int add(List<String> analysisIds, ElementAnalysisGroupConfigEntity analysisGroupEntity);

    /**
     * 新增或编辑元素解析组中的元素
     *
     * @param analysisIds         元素数据id集合
     * @param analysisGroupEntity 解析组实体
     * @return java.util.List<com.aoip.telemetry.telemetry.entity.element.ElementConfigEntity>
     * @author chenbai
     * @date 2021/12/27
     **/
    int edit(List<String> analysisIds, ElementAnalysisGroupConfigEntity analysisGroupEntity);

    /**
     * 初始化数据到redis缓存库
     *
     * @return int
     * @author chenbai
     * @date 2022/3/8
     **/
    int initCache();

    /**
     * 逻辑删除元素解析组数据
     *
     * @param analysisGroupIds 元素解析组数据id
     * @author chenbai
     * @date 2021/12/27
     **/
    void delete(String[] analysisGroupIds);
}
